With the development of mobile computing, mobile terminals are shifting from mainly consuming content (i.e., downloading) to also creating a significant amount of content (i.e., uploading). Different mobile applications may have different Quality of Service (QoS) parameters. For example, a video conferencing application may prefer transmission of data instantly or in near real-time, but a video streaming application may be able to tolerate certain amount of delay in transmission due to caching or buffering. Network components, e.g., gateways and routers, may be able to inspect packets to/from these applications, differentiate different QoS parameters, and process the packets to/from different mobile applications differently. However, on the mobile terminal side, the QoS parameters of different mobile applications may not be well integrated into the transmission stacks. This is because many mobile terminals use transmission stacks originally designed for computers with direct connections to wired networks, which may not be efficient or power-savvy for wireless access networks. Examples of these transmission stacks may include the Open Systems Interconnection (OSI) model and the Transport Control Protocol/Internet Protocol (TCP/IP) model, in which data generated by the upper layer applications are encapsulated by various lower layers of the transmission stacks. Because of the encapsulation, the lower layers of the transmission stacks (e.g., the IP layer and/or the link layer) may not be able to differentiate packets to/from different applications that have different QoS parameters. Consequently, packets with higher priorities may get delivered to/from the network/applications behind packets with lower priorities. As a result, the QoS of the applications may suffer.
Moreover, for today's mobile terminals, although computation and transmission may remain to be the two major power consumption sources, transmission may account for more power usage than computation, especially for the mobile applications that utilizes online services. However, the traditional transmission stacks may not be fully optimized to save power while maintaining the QoS. This mismatch may cause unsatisfactory, or even frustrating, user experience when accessing online services in wireless access networks. Some mobile terminals may try to alleviate such problem by dropping connections immediately after each data transmission to save power. However, frequent connect/disconnect may congest the signaling channels, which in turn may lead to more connection failures.
There have been several partial solutions that use application-transparent traffic shaping methods to reduce transmission power consumption. However, these methods in general may only address the lower layers of the transmission stacks. Furthermore, these methods may not provide a mechanism for the mobile applications to communicate their QoS parameters to all the layers of the transmission stacks. Therefore, the savings afforded by these solutions are usually modest.
There have also been several hardware based network stack implementations designed to reduce the central processing unit (CPU) workload from the software-based transmission stacks, such as TCP offload engines (TOE). However, the transmission data rate on mobile terminals may not be high enough to cause the increase of processor usage due to software-based transmission stacks to become a major bottleneck of the system. Therefore, solutions such as TOE that accelerates the software transmission stacks by hardware may not be effective for mobile terminals.